package com.tan.core.utils;

import com.tan.core.enums.ErrorEnum;
import com.tan.core.exception.SystemException;
import org.apache.commons.lang3.StringUtils;

import java.util.List;
import java.util.function.Function;

/**
 * @author Tan
 * @description
 * @date 2025/2/6
 */
public class ExceptionTool {

    public static boolean isEmpty(List<?> list) {
        return list == null || list.isEmpty();
    }

    public static void systemError(boolean condition, String msg) {
        if (condition) {
            throw new SystemException(ErrorEnum.SERVER_HANDLE_ERROR, msg);
        }
    }

    public static void operateSqlError(int count, String msg) {
        systemError(count <= 0, msg);
    }

    public static void isNullError(List<?> list, String msg) {
        systemError(isEmpty(list), msg);
    }

    public static <T> void isNullError(T t, String msg) {
        systemError(t == null || StringUtils.isBlank(t.toString()), msg);
    }

    public static <T, E> void isNullError(T t, Function<T, E> fuc, String msg) {
        E v = fuc.apply(t);
        systemError(t == null || v == null || StringUtils.isBlank(v.toString()), msg);
    }
}
